home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / cmidilib.zip / MIDIFILE.H < prev    next >
C/C++ Source or Header  |  1991-08-23  |  3KB  |  110 lines

  1. /* definitions for MIDI file parsing code */
  2. extern int (*Mf_getc)();
  3. extern int (*Mf_header)();
  4. extern int (*Mf_trackstart)();
  5. extern int (*Mf_trackend)();
  6. extern int (*Mf_noteon)();
  7. extern int (*Mf_noteoff)();
  8. extern int (*Mf_pressure)();
  9. extern int (*Mf_parameter)();
  10. extern int (*Mf_pitchbend)();
  11. extern int (*Mf_program)();
  12. extern int (*Mf_chanpressure)();
  13. extern int (*Mf_sysex)();
  14. extern int (*Mf_metamisc)();
  15. extern int (*Mf_seqspecific)();
  16. extern int (*Mf_seqnum)();
  17. extern int (*Mf_text)();
  18. extern int (*Mf_eot)();
  19. extern int (*Mf_timesig)();
  20. extern int (*Mf_smpte)();
  21. extern int (*Mf_tempo)();
  22. extern int (*Mf_keysig)();
  23. extern int (*Mf_arbitrary)();
  24. extern int (*Mf_error)();
  25. extern long Mf_currtime;
  26. extern int Mf_nomerge;
  27.  
  28. /* definitions for MIDI file writing code */
  29. extern int (*Mf_putc)();
  30. extern int (*Mf_writetrack)();
  31. extern int (*Mf_writetempotrack)();
  32. float mf_ticks2sec();
  33. unsigned long mf_sec2ticks();
  34. void mfwrite();
  35.  
  36. /* MIDI status commands most significant bit is 1 */
  37. #define note_off             0x80
  38. #define note_on              0x90
  39. #define poly_aftertouch      0xa0
  40. #define control_change        0xb0
  41. #define program_chng         0xc0
  42. #define channel_aftertouch      0xd0
  43. #define pitch_wheel          0xe0
  44. #define system_exclusive          0xf0
  45. #define delay_packet         (1111)
  46.  
  47. /* 7 bit controllers */
  48. #define damper_pedal            0x40
  49. #define portamento            0x41     
  50. #define sostenuto            0x42
  51. #define soft_pedal            0x43
  52. #define general_4               0x44
  53. #define    hold_2                0x45
  54. #define    general_5            0x50
  55. #define    general_6            0x51
  56. #define general_7            0x52
  57. #define general_8            0x53
  58. #define tremolo_depth            0x5c
  59. #define chorus_depth            0x5d
  60. #define    detune                0x5e
  61. #define phaser_depth            0x5f
  62.  
  63. /* parameter values */
  64. #define data_inc            0x60
  65. #define data_dec            0x61
  66.  
  67. /* parameter selection */
  68. #define non_reg_lsb            0x62
  69. #define non_reg_msb            0x63
  70. #define reg_lsb                0x64
  71. #define reg_msb                0x65
  72.  
  73. /* Standard MIDI Files meta event definitions */
  74. #define    meta_event        0xFF
  75. #define    sequence_number     0x00
  76. #define    text_event        0x01
  77. #define copyright_notice     0x02
  78. #define sequence_name        0x03
  79. #define instrument_name     0x04
  80. #define lyric                0x05
  81. #define marker            0x06
  82. #define    cue_point        0x07
  83. #define channel_prefix        0x20
  84. #define    end_of_track        0x2f
  85. #define    set_tempo        0x51
  86. #define    smpte_offset        0x54
  87. #define    time_signature        0x58
  88. #define    key_signature        0x59
  89. #define    sequencer_specific    0x74
  90.  
  91. /* Manufacturer's ID number */
  92. #define Seq_Circuits (0x01) /* Sequential Circuits Inc. */
  93. #define Big_Briar    (0x02) /* Big Briar Inc.           */
  94. #define Octave       (0x03) /* Octave/Plateau           */
  95. #define Moog         (0x04) /* Moog Music               */
  96. #define Passport     (0x05) /* Passport Designs         */
  97. #define Lexicon      (0x06) /* Lexicon             */
  98. #define Tempi        (0x20) /* Bon Tempi                */
  99. #define Siel         (0x21) /* S.I.E.L.                 */
  100. #define Kawai        (0x41) 
  101. #define Roland       (0x42)
  102. #define Korg         (0x42)
  103. #define Yamaha       (0x43)
  104.  
  105. /* miscellaneous definitions */
  106. #define MThd 0x4d546864
  107. #define MTrk 0x4d54726b
  108. #define lowerbyte(x) ((unsigned char)(x & 0xff))
  109. #define upperbyte(x) ((unsigned char)((x & 0xff00)>>8))
  110.